/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package rest.pojo.conversor;

import entidade.Usuario;
import java.util.ArrayList;
import java.util.List;
import rest.pojo.UsuarioPOJO;

/**
 *
 * @author geovane
 */
public class UsuarioConverter {

    private static final UsuarioConverter uniqueInstance = new UsuarioConverter();

    private UsuarioConverter() {

    }

    public static UsuarioConverter getInstance() {
        return uniqueInstance;
    }

//    public static UsuarioPOJO toUsuarioPOJO(Usuario usuario){
//        UsuarioPOJO resposta= toUsuarioPOJOSimples(usuario);
//        return resposta;
//        
//    }
    public static UsuarioPOJO toUsuarioPOJO(Usuario usuario) {
        if (usuario != null) {
            UsuarioPOJO resposta = new UsuarioPOJO();

            resposta.setId(usuario.getId());
            resposta.setEmail(usuario.getEmail());
            resposta.setPerfil(usuario.getPerfil());
            
            resposta.setUsername(usuario.getEmail());
            resposta.setSenha(usuario.getSenha());
            System.out.println("aqui");
            return resposta;
        } else {
            return null;
        }
    }

    public static Usuario fromUsuarioPOJO(UsuarioPOJO usuarioPOJO) {
        if (usuarioPOJO != null) {
            Usuario resposta = new Usuario();
            resposta.setId(usuarioPOJO.getId());
            resposta.setEmail(usuarioPOJO.getEmail());
            resposta.setPerfil(usuarioPOJO.getPerfil());
            resposta.setSenha(usuarioPOJO.getSenha());
            resposta.setUsername(usuarioPOJO.getUsername());

            return resposta;
        } else {
            return null;
        }
    }

    public static List<UsuarioPOJO> toUsuariosPOJO(List<Usuario> usuarios) {
        if (usuarios != null) {

            ArrayList<UsuarioPOJO> resposta = new ArrayList<>();
//Função de forEach do java 8
            usuarios.stream().forEach((usuario) -> {
                resposta.add(toUsuarioPOJO(usuario));
            });

            return resposta;
        } else {
            return null;
        }

    }

    public static List<Usuario> fromUsuariosPOJO(List<UsuarioPOJO> usuariosPOJO) {
        if (usuariosPOJO != null) {

            ArrayList<Usuario> resposta = new ArrayList<>();

            usuariosPOJO.stream().forEach((usuarioPOJO) -> {
                resposta.add(fromUsuarioPOJO(usuarioPOJO));
            });

            return resposta;
        } else {
            return null;
        }
    }

}
